package com.tiger.communal.domain;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;

import com.tiger.project.domain.Asset;
import com.tiger.project.domain.ContractSponsor;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.tiger.common.annotation.Excel;
import com.tiger.common.core.domain.BaseEntity;

/**
 * 代营公司对象 common_agency
 *
 * @author tiger
 * @date 2022-09-13
 */
@EqualsAndHashCode(callSuper = false)
@Data
@ApiModel(value = "common_agency对象", description = "代营业公司内容")
public class CommonAgency extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** ID */
    private Long id;

    /** 机构全称 */
    @Excel(name = "机构全称")
    @ApiModelProperty(value = "机构全称")
    private String organFullName;

    /** 机构简称 */
    @Excel(name = "机构简称")
    @ApiModelProperty(value = "机构简称")
    private String organShortName;

    /** 机构编码 */
    @Excel(name = "机构编码")
    @ApiModelProperty(value = "机构编码")
    private String organCode;

    /** 排序 */
    @Excel(name = "排序")
    @ApiModelProperty(value = "排序")
    private Long sort;

    /** 联系电话 */
    @Excel(name = "联系电话")
    @ApiModelProperty(value = "联系电话")
    private String phone;

    /** 传真号码 */
    @Excel(name = "传真号码")
    @ApiModelProperty(value = "传真号码")
    private String faxNumber;

    /** 机构负责人 */
    @Excel(name = "机构负责人")
    @ApiModelProperty(value = "机构负责人")
    private String organPrincipal;

    /** 统一信用社代码 */
    @Excel(name = "统一信用社代码")
    @ApiModelProperty(value = "统一信用社代码")
    private String creditUnionCode;

    /** 开户名 */
    @Excel(name = "开户名")
    @ApiModelProperty(value = "开户名")
    private String accountName;

    /** 开户行 */
    @Excel(name = "开户行")
    @ApiModelProperty(value = "开户行")
    private String openingBank;

    /** 银行账号 */
    @Excel(name = "银行账号")
    @ApiModelProperty(value = "银行账号")
    private String bankAccount;

    /** 机构地址 */
    @Excel(name = "机构地址")
    @ApiModelProperty(value = "机构地址")
    private String organAddress;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "创建时间")
    private Date createdAt;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "更新时间")
    private Date updateAt;

    /** 创建人 */
    @Excel(name = "创建人")
    @ApiModelProperty(value = "创建人")
    private Long createById;

    /** 创建人名称 */
    @Excel(name = "创建人名称")
    @ApiModelProperty(value = "创建人名称")
    private String createByName;

    /** 更新人 */
    @Excel(name = "更新人")
    @ApiModelProperty(value = "更新人")
    private Long updateById;

    /** 更新人名称 */
    @Excel(name = "更新人名称")
    @ApiModelProperty(value = "更新人名称")
    private String updateByName;

    /** 租户id(0--平台用户 非0--正常租户) */
    @Excel(name = "租户id(0--平台用户 非0--正常租户)")
    @ApiModelProperty(value = "租户id(0--平台用户 非0--正常租户)")
    private Long tenantId;

    @ApiModelProperty(value = "公司id")
    private Long companyId;

    /** 1-是，0-否 */
    @Excel(name = "1-是，0-否")
    @ApiModelProperty(value = "删除标志 1-是，0-否")
    private Long isDeleted;

    @ApiModelProperty(value = "1-升序 2-降序")
    private Long rank;

    @ApiModelProperty(value = "联系人")
    private List<CommonAgencyLinkman> linkmanList = new ArrayList<>();

    @ApiModelProperty(value = "附件集合")
    private List<CommonAgencyEnclosure> enclosureList = new ArrayList<>();

    @ApiModelProperty(value = "资产集合")
    private List<Asset> assetList = new ArrayList<>();

    @ApiModelProperty(value = "合同发起集合")
    private List<ContractSponsor> sponsorList = new ArrayList<>();

}
